Wireless communication networks include base stations for exchanging communications with mobile devices operating within corresponding cells. The base stations are connected to a controller, such as a base station controller (BSC) in a Global System for Mobile communication (GSM) network or a radio network controller (RNC) in a Universal Mobile Telecommunication System (UMTS) network, which in turn are connected to a Mobile Switching Center (MSC) within a core network.
Many conventional wireless communication services implemented by the wireless communication networks include the feature of determining geographic locations mobile devices. For example, an emergency service responsive to “911” initiated at a mobile device may include estimating latitude and longitude of the mobile device in order to locate the mobile device. Likewise, a value-added service may identify the nearest retail outlet of a particular store based on the current estimated position of the mobile device. The geographic location of a mobile device may be determined by a mobile location center (MLC) server or node in the wireless communication network, such as a serving mobile location center (SMLC) in a GSM network or a stand-alone SMLC (SAS) in a UMTS network, for example.
The MLC may determine the geographic location of a mobile device using positioning measurements from a global navigation satellite system (GNSS), which are provided by a GNSS receiver in the mobile device. Accurate time is needed for accurate position determination using GNSS positioning measurements. The position calculation models are only valid for a short period of time, and thus a large error in time results in large errors in calculations. When the GNSS receiver is unable to receive the satellite signals and/or to demodulate the timing information, assisted GNSS (A-GNSS) may be utilized to provide reference time data, as well as acquisition assistance, to the mobile device.
In a server-based A-GNSS configuration, for example, the MLC implements a position calculation function using variations on an iterative weighted least squares algorithm, which may operate in two modes. The first mode may be implemented when the time at which the GNSS receiver performs satellite signal measurements is known to a high degree of accuracy, in which case the calculations can be limited to the geographic position of the mobile device. In three dimensions, this means that four measurements (e.g., from four satellites in the GNSS constellation) are required to solve for the x, y and z coordinates of the mobile device, as well as the sub-millisecond handset clock drift or receiver clock error μ. The first mode produces a high yield, providing that accurate time is provided by the mobile device, and is able to compensate for small errors in measured time, such as errors that result from receiver clock drift. Larger errors in time cannot be corrected so easily, and thus directly increase position errors and reduce yield.
The second mode is implemented when the time is unavailable or not accurate, in which case the calculations include an additional measurement (e.g., from a fifth satellite in the GNSS constellation), which is required to determine or recover the gross time error. The fifth measurement is required to include measurement time T as a fifth variable, in addition to the x, y, z coordinates and receiver clock error μ. Thus, in a server-based A-GNSS system, the MLC is able recover the measurement time.
Because of the distributed nature of A-GNSS systems, timing errors in one portion of the system do not affect the operation of the GNSS receiver. In server-based A-GNSS, for example, the mobile device does not use the measurement time, and is therefore capable of functioning without accurate time provided that the server provides correct assistance data. However, for the MLC to calculate the position of the mobile device, the measurement time must be accurate. Otherwise, errors in measurement time result in inaccurate position determination of the mobile device, even where other measurement data is good. Also, even when the MLC is capable of recovering an accurate measurement time from an inaccurate input, an approximate time accurate within a certain window is necessary to initiate the process. A measured time may be provided from the mobile device, but the measured time may be erroneous (i.e., outside the window of usable initial times), in which case the MLC is still unable to recover an accurate measurement time. Further, when the MLC is not aware that the measured time received form the mobile device is erroneous, it will not take steps to substitute an alternate initial time.
In a representative embodiment, a method implemented by an A-GNSS server is provided for determining a position of a GNSS receiver. The method includes sending a request for measurement information to the GNSS receiver at a first time, and receiving the measurement information from the GNSS receiver in response to the request at a second time, the measurement information including position measurement data and a corresponding measured time based on multiple satellite signals received by the GNSS receiver. The method further includes determining that the measured time is erroneous when the measured time is outside an accurate time range determined based on at least one of the first time and the second time, and identifying a substitute time and determining the position of the GNSS receiver based on the substitute time when the measured time is determined to be erroneous.
In another representative embodiment, a computer readable medium, storing code executable by a computer processor, is provided for determining a position of a GNSS receiver. The computer readable medium includes communication, time error determining and time recovery code segments, for example. The communication code segment sends a request for measurement information to the GNSS receiver at a first time and receives the measurement information from the GNSS receiver at a second time, the measurement information including position measurement data and a corresponding measured time based on multiple satellite signals received by the GNSS receiver. The time error determining code segment determines whether the measured time is erroneous, where the time error determining code segment determines that the measured time is erroneous when the measured time of the received measurement information is outside an accurate time range determined based on at least one of the first time and the second time. The time recovery code segment determines a recovered time using the measured time when the time error determining code segment determines that the measured time is not erroneous and using a substitute time when the time error determining code segment determines that the measured time is erroneous.
In yet another representative embodiment, a device includes a communication interface and a processor. The communication interface is configured to enable sending a request for measurement information to a GNSS receiver at a first time and to enable receiving the measurement information from the GNSS receiver at a second time, the measurement information including position measurement data and a corresponding measured time based on multiple satellite signals received by the GNSS receiver. The processor is configured to control operations of the communication interface and to execute an algorithm. The algorithm includes determining whether the measured time received through the communication interface is erroneous, where the measured time is erroneous when the measured time of the received measurement information is earlier than a lower limit of an accurate time range or later than an upper limit of the accurate time range; determining a recovered time using the measured time when the measured time is not erroneous and using a substitute time when the measured time is erroneous; and calculating a geographic location of the GNSS receiver using the recovered time.